With the development of information society, information security technologies for securely protecting information to be handled have become more important. As one constituent element of the information security technologies, there is encryption technology. Encryption technology is currently used for various products and systems.
There are various encryption processing algorithms. As one of the basic technologies, there is a technology called common key block encryption. In common key block encryption, an encryption key and a decryption key are common. In both an encryption process and a decryption process, a plurality of keys are generated from the common key and a data conversion process is repeatedly executed in a certain block unit, for example, a block data unit of 64 bits, 128 bits, 256 bits, or the like.
As representative common key block encryption algorithms, there are data encryption standard (DES) which is the past American standard and advanced encryption standard (AES) which is the current American standard. Additionally, various types of common key block encryption also continue to be currently proposed. CLEFIA proposed in 2007 by Sony Corporation is one type of common key block encryption.
As a technology of the related art in which common key block encryption is disclosed, for example, there is Patent Literature 1 (JP 2012-215813A).
Such a common key block encryption algorithm is configured to mainly include an encryption processing section including a round function execution section that repeatedly converts input data and a key scheduling section generating a round key which is applied to each round of a round function section. The key scheduling section first generates an expanded key in which the number of bits is increased based on a master key (main key) which is a private key and generates a round key (subkey) which is applied to each round function section of the encryption processing section based on the generated expanded key.
As a specific structure that executes such an algorithm, a structure that repeatedly executes a round function that has a linear conversion section and a nonlinear conversion section is known. As representative structures, for example, there are a substitution-permutation network (SPN) structure, a Feistel structure, and an expanded Feistel structure.
Such structures are all structures in which plaintext is converted into ciphertext by repeatedly executing a round function that has a linear conversion section and a nonlinear conversion section.